昨天介紹完抽象類別,今天要來介紹一個跟它十分相似的介面(Interface),兩者都是只定義方法卻都不會實作方法,因此兩者都是一樣無法生成物件,但是介面的本質跟類別實際上是不同的,比方說在定義一個介面時只會有資料成員的屬性及方法,並且不需要建構子,這就是跟類別最大的不同,而如果要使用介面也不是用繼承而是另一個語法實作(implements),但是介面彼此之間是可以互相繼承的,就是有父介面與子介面的關係,因此如果要實作介面就必須將該介面及以上的介面都要一起實作。
下方是我以昨天抽象類別相同的資訊改用介面去實作:
跟昨天是一樣的結果喔,但是不是覺得程式碼少蠻多了而且也比較明確了吧,這就是介面的好處,因為繼承關係只能是一個子類別繼承一個父類別,所以有時可能會繼承一些你根本不需要用的方法,如果說可以選擇自己要什麼方法豈不是比較方便嗎?將你需要的每一種方法都定義成一個介面,需要時再實作就好了,反正一個類別可以實作多個介面,這是用來模擬可以一對多的繼承關係,也比較常被做使用。